<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Promise封装的AJAX</title>
  </head>

  <body>
    <button id="btn">发送AJAX的get请求</button>
  </body>
  <script>
    /* 
    Promise封装的AJAX,发送Get的AJAX请求
    参数：url
    返回结果：Promise对象
    */

    function getAJAX(path) {
      return new Promise((resolve, reject) => {
        // 1.创建对象
        const xhr = new XMLHttpRequest();
        // 2.初始化
        xhr.open('get', path);
        // 3.发送
        xhr.send();
        // 4.处理响应结果
        xhr.onreadystatechange = function () {
          if (xhr.readyState === 4) {
            // 判断响应状态码 2XX
            if (xhr.status >= 200 && xhr.status < 300) {
              // 控制台输出响应体
              // console.log(xhr.response);
              resolve(xhr.response)
            } else {
              // 控制台输出响应状态码
              // console.log(xhr.status);
              reject(xhr.status)
            }
          }
        }
      })
    }
    let btn = document.querySelector("#btn");
    btn.onclick = function () {
      getAJAX("https://api.apiopen.top/getJoke").then(res => {
        console.log(res);
      }, err => {
        console.log(err);
      })
    }
  </script>

</html>